package com.crm.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DataUtil {

	/**
	 * 获取本周第一天时间
	 * @Description : TODO
	 * @author zealot
	 * @param @return
	 * @return Date
	 * @version 创建时间 : 2016年12月16日 上午10:29:56
	 * @thorws
	 */
	public static Date getWeekStartDate(){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		Date date = cal.getTime();
		return date;
	}
	
	/**
	 * 
	 * @Description : 获取当前时间
	 * @author zealot
	 * @param @return
	 * @return Date
	 * @version 创建时间 : 2016年12月16日 上午10:34:15
	 * @thorws
	 */
	public static String getNow(){
		Date date = new Date();
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return df.format(date);
	}
	
	/**
	 * 
	 * @Description : 获取当月第一天
	 * @author zealot
	 * @param @return
	 * @return Date
	 * @version 创建时间 : 2016年12月16日 上午10:56:33
	 * @thorws
	 */
	public static Date getMonthStartDate(){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.MONTH, Calendar.MONDAY); 
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		Date date = cal.getTime();
		return date;
	}
	
	/**
	 * 
	 * @Description : 获取当前年第一天
	 * @author zealot
	 * @param @return
	 * @return Date
	 * @version 创建时间 : 2016年12月16日 上午11:21:54
	 * @thorws
	 */
	public static Date getYearStartDate(){
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Calendar.MONDAY); 
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		Date date = cal.getTime();
		return date;
	}
	
	/**
	 * 
	 * @Description : 获取当前季度第一天
	 * @author zealot
	 * @param @return
	 * @return Date
	 * @version 创建时间 : 2016年12月16日 上午10:57:51
	 * @thorws
	 */
	public  static Date getCurrentQuarterStartTime() {
        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        Date now = null;
        DateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        DateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            if (currentMonth >= 1 && currentMonth <= 3)
                c.set(Calendar.MONTH, 0);
            else if (currentMonth >= 4 && currentMonth <= 6)
                c.set(Calendar.MONTH, 3);
            else if (currentMonth >= 7 && currentMonth <= 9)
                c.set(Calendar.MONTH, 4);
            else if (currentMonth >= 10 && currentMonth <= 12)
                c.set(Calendar.MONTH, 9);
            c.set(Calendar.DATE, 1);
            now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
}
